package com.example.basic.web.model.newly;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.example.basic.base.IdEntity;
import com.example.basic.base.event.PreCreateEventEntity;
import com.example.basic.base.event.PreUpdateEventEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

/**
 * 流程对象 sys_pda_flow
 * 
 * @author zhiyun
 * @date 2025-08-08
 */
@Data
public class SysPdaFlow extends IdEntity implements PreCreateEventEntity, PreUpdateEventEntity
{

    /** id */
    @TableId(value = "id")
    private String id;

    /** 遗体id */
    private String remainsId;

    /** 初次信息确认状态 0无 1待确认 2已确认 */
    private Integer msgFirstAffirm;

    private Integer isDisinfect;

    /** 消毒状态  0无 1待确认 2已确认 */
    private Integer disinfectStatus;

    /** 是否spa */
    private Integer isSpa;

    /** spa状态  0无 1待确认 2已确认 */
    private Integer spaStatus;

    /** 是否冰柜 */
    private Integer isFreezer;

    /** 冰柜状态 0无 1待确认 2已确认 */
    private Integer freezerStatus;

    /** 冰柜类型 1普通 2高级 */
    private Integer freezerType;

    /** 是否化妆 */
    private Integer isMake;

    /** 化妆状态 0无 1待确认 2已确认 */
    private Integer makeStatus;

    /** 信息二次确认 0无 1待确认 2已确认 */
    private Integer msgSecondAffirm;

    /** 是否瞻仰 */
    private Integer isAdmire;

    /** 瞻仰状态 0无 1待确认 2已确认 */
    private Integer admireStatus;

    /** 瞻仰厅id */
    private String admireId;

    /** 瞻仰开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date admireTimeStart;

    /** 瞻仰结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date admireTimeEnd;

    /** 火化类型 1立即 2择日 */
    private Integer fireType;

    /** 火化时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date fireTime;

    /** 火化状态 0无 1待确认 2已确认 */
    private Integer fireStatus;

    /** 当前状态 1暂存区 2消毒 3 spa 4冰柜 5化妆 6二次信息确认 7瞻仰 8火化  */
    private Integer nowStage;

    /**
     * 设备接驳台id
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String positionId;

    /**
     * 已废弃
     */
    private String deviceId;

    private Date createAt;

    private Date updateAt;

    private String createBy;

    private String updateBy;

}
